package com.ynet.middleground.oss.oauth.filter;

/**
 *
 * @author Suremotoo
 * @create 2020-10-11 13:36:34
 */
public class InvocationSecurityMetadataSourceService {}
//
// @Component
// public class InvocationSecurityMetadataSourceService implements FilterInvocationSecurityMetadataSource {
//
// @Autowired
// private PermissionMapper permissionMapper;
//
// /**
// * 每一个资源所需要的角色 Collection<ConfigAttribute>决策器会用到
// */
// private static HashMap<String, Collection<ConfigAttribute>> map = null;
//
//
// /**
// * 返回请求的资源需要的角色
// *
// * @param o
// * @return
// * @throws IllegalArgumentException
// */
// @Override
// public Collection<ConfigAttribute> getAttributes(Object o) throws IllegalArgumentException {
// //object 中包含用户请求的request 信息
// HttpServletRequest request = ((FilterInvocation) o).getHttpRequest();
// for (Iterator<String> it = map.keySet().iterator(); it.hasNext(); ) {
// String url = it.next();
// if (new AntPathRequestMatcher(url).matches(request)) {
// return map.get(url);
// }
// }
// return null;
// }
//
// @Override
// public Collection<ConfigAttribute> getAllConfigAttributes() {
// //初始化 所有资源 对应的角色
// loadResourceDefine();
// return null;
// }
//
// @Override
// public boolean supports(Class<?> aClass) {
// return true;
// }
//
// /**
// * 初始化 所有资源 对应的角色
// */
// public void loadResourceDefine() {
// map = new HashMap<>(16);
// //权限资源 和 角色对应的表 也就是 角色权限 中间表
// List<RolePermisson> rolePermissons = permissionMapper.getRolePermissions();
// //某个资源 可以被哪些角色访问
// for (RolePermisson rolePermisson : rolePermissons) {
// String url = rolePermisson.getUrl();
// String roleName = rolePermisson.getRoleName();
// ConfigAttribute role = new SecurityConfig(roleName);
// if (map.containsKey(url)) {
// map.get(url).add(role);
// } else {
// List<ConfigAttribute> list = new ArrayList<>();
// list.add(role);
// map.put(url, list);
// }
// }
// }
// }